package com.djl.sqtg.controller;

import com.djl.sqtg.entity.User;
import com.djl.sqtg.service.IUserService;
import com.djl.sqtg.util.JsonResult;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/** 处理用户相关请求的控制器类 */
@RestController
@RequestMapping("users")
public class UserController extends BaseController {
    @Autowired
    private IUserService userService;

    @RequestMapping("login")
    public JsonResult<User> login(String username, String password, HttpSession session) {
        //1、通过注解自动获取到前端传来的参数给该方法当参数使用
        // 调用业务对象的方法执行登录，并获取返回值
        //2、调用服务层来操作数据库，并将数据库获取的结果集通过mybatis自动转换为实体类对象user，并赋值给实体类user的一个对象
        User data = userService.login(username, password);
        //登录成功后，将uid和username存入到HttpSession中
        session.setAttribute("uid", data.getUid());
        session.setAttribute("username", data.getUsername());
        // 将以上返回值和状态码OK封装到响应结果中并返回
        //3、将数据返回响应到前端
        return new JsonResult<User>(OK, data);
    }
}
